const axios = require('axios');
const {response} = require("express");
const AipFaceClient = require('baidu-aip-sdk').face;
const APP_ID = '118155902'; // your app id
const API_KEY = 'qJr1GtSuWiR3JwSzgZi0bFuN';// your app key
const SECRET_KEY = 'V3Xx49q8YpikRo8Cd0TWGW8P5tkuqGAf';// your app secret key
// 人脸注册
async function main(image,name='111') {// 人脸注册
    var options = { // 请求参数
        'method': 'POST',
        'url': 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=' + await getAccessToken(),// 调用接口的URL，并附带 Access Token
        'headers': {
                'Content-Type': 'application/json'// 请求头，设置请求体格式为 JSON
        },
        data: JSON.stringify({
                "image": image,// 图片 base64 编码
                "image_type": "BASE64",// 图片类型，可选值：BASE64、URL、FACE_TOKEN
                "group_id": "0u1KGFDkQWIlI3uDrpDHLQ18",// 组 ID·
                "user_id":name// 用户 ID，自定义，尽量保证唯一性
        })

    };

    const findex=axios(options)// 发送请求
        .then(response => {
            // console.log(response.data);// 打印返回结果
            //返回注册结果
            return response;
        })
        .catch(error => {
            throw new Error(error);// 抛出错误信息
        })
    return findex;
}

// 人脸搜索
// 首先需要获取 Access Token，然后使用 Access Token 进行人脸搜索
async function main1(image) {// 人脸搜索
    var option1 = {
        'method': 'POST',
        'url': 'https://aip.baidubce.com/rest/2.0/face/v3/search?access_token=' + await getAccessToken(),
        'headers': {
                'Content-Type': 'application/json'
        },
        // image 可以通过 getFileContentAsBase64("C:\fakepath\9dbd2b9851700b65afe93c405e2ef25.jpg") 方法获取,
        data: JSON.stringify({
                "group_id_list": "0u1KGFDkQWIlI3uDrpDHLQ18",// 组 ID,多个组以逗号分隔
                "image": image,
                "image_type": "BASE64",// 图片类型，可选值：BASE64、URL、FACE_TOKEN
                // "quality_control": 0, // 图片质量控制，取值范围[0, 100]，0 为最低质量，100 为最高质量，默认值为 100
                // "liveness_control": 0,// 活体检测控制，取值范围[0, 100]，0 为最低活体，100 为最高活体，默认值为 100
                "max_user_num": 2,// 最多返回多少个用户信息，默认值为 10，最大值为 50
                "match_threshold": 80,// 匹配阈值，默认值为 70，可选值 [0,100]
                "face_sort_type": 0// 人脸排序类型，0 为距离远近排序，1 为识别结果排序，默认值为 0
        })

    };

    const score=axios(option1)
        .then(response => {
            console.log(response.data.result.user_list[0]);
            return response.data.result.user_list[0].score;
        })
        .catch(error => {
            throw new Error(error);
        })
    return  score;
}



/**
 * 使用 AK，SK 生成鉴权签名（Access Token）
 * @return string 鉴权签名信息（Access Token）
 */
// 首先需要在百度云控制台申请 API Key 和 Secret Key
function getAccessToken() {// 获取 Access Token
    let options = {
        'method': 'POST',
        'url': 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + API_KEY + '&client_secret=' + SECRET_KEY,
    }
    return new Promise((resolve, reject) => {
      axios(options)
          .then(res => {
              resolve(res.data.access_token)// 打印 Access Token
            })
          .catch(error => {
              reject(error)
          })
    })
}





module.exports = { main,main1 };




